# 获取 git 版本字符串（含 dirty 状态）
execute_process(
  COMMAND git describe --tags --always --dirty=-dirty
  WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
  OUTPUT_VARIABLE GIT_VERSION
  OUTPUT_STRIP_TRAILING_WHITESPACE
  ERROR_QUIET
)

# 如果不在 git 仓库，则 fallback 到手动写的版本
if(NOT GIT_VERSION)
  set(GIT_VERSION "v0.0.0-unknown")
endif()

set(APP_VERSION ${GIT_VERSION} PARENT_SCOPE)